package com.huaxin.device.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.huaxin.device.dto.ResponseResult;
import com.huaxin.device.dto.enums.AlarmType;
import com.huaxin.device.dto.request.DeviceAlarmCreateReqDTO;
import com.huaxin.device.dto.request.DeviceAlarmPageListReqDTO;
import com.huaxin.device.models.DeviceAlarm;

public interface DeviceAlarmService extends IService<DeviceAlarm> {
    /**
     * 创建设备报警信息
     */
    DeviceAlarm create(DeviceAlarmCreateReqDTO in);

    /**
     * 获取设备报警信息
     */
    DeviceAlarm getByDeviceAlarmId(String id);

    /**
     * 获取未处理的最新报警
     */
    DeviceAlarm getLastUnResolvedByDeviceAndType(String deviceId, AlarmType alarmType);

    /**
     * 分页查询设备报警信息
     */
    ResponseResult<IPage<DeviceAlarm>> pageQuery(DeviceAlarmPageListReqDTO in);

    /**
     * 解决设备报警
     */
    ResponseResult<Boolean> resolve(String id);

    /**
     * 未解决设备报警
     */
    ResponseResult<Boolean> unResolve(String id);
}
